<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/7/21
 * Time: 11:09
 * 小程序消息模板
 */

namespace App\Services;


use Overtrue\LaravelWeChat\Facade;

class TemplateService extends BaseService
{
    protected $template_id1;
    protected $template_id2;

    public function __construct()
    {
        $this->template_id1 = 'U-xkTIlunZHq6Ea0yviUatewCkNOaVz8bVxqPoQ4UW8'; //司机接单推送模板ID
        $this->template_id2 = '9yZkORWuna9oqQKL6OdAjkzQ5dSOLz6-RPuot-g7TSc'; //司机取消订单模板ID
    }

    /**
     * 订阅消息推送
     * @param string $template_id
     * @param string $touser
     * @param string $keyword1
     * @param string $keyword2
     * @param string $keyword3
     * @param string $keyword4
     * @param string $keyword5
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
     * @throws \GuzzleHttp\Exception\GuzzleException
     */
    public function sends(string $touser, string $keyword1, string $keyword2, string $keyword3, string $keyword4, string $keyword5)
    {
        $app = Facade::officialAccount();
        $data = [
            'template_id' => $this->template_id1, // 所需下发的订阅模板id
            'touser' => $touser,     // 接收者（用户）的 openid
            'url' => '',       // 点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。
            'data' => [         // 模板内容，格式形如 { "key1": { "value": any }, "key2": { "value": any } }
                'first' => [
                    'value' => '司机正在前往接您，请注意订单信息，及时前往上车地点',
                ],
                'keyword1' => [
                    'value' => $keyword1,
                ],
                'keyword2' => [
                    'value' => $keyword2,
                ],
                'keyword3' => [
                    'value' => $keyword3,
                ],
                'keyword4' => [
                    'value' => $keyword4,
                ],
                'keyword5' => [
                    'value' => $keyword5,
                ],
                'remark' => [
                    'value' => '为避免错过订单信息，请打开小程序查看。优米出行祝您出行愉快！',
                ],
            ],
        ];
        $app->template_message->send($data);
    }

    /**
     * @param string $template_id
     * @param string $touser
     * @param string $keyword1
     * @param string $keyword2
     * @param string $keyword3
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
     * @throws \GuzzleHttp\Exception\GuzzleException
     * 订阅消息推送
     */
    public function send(string $touser, string $keyword1, string $keyword2, string $keyword3)
    {
        $app = Facade::officialAccount();
        $data = [
            'template_id' => $this->template_id2, // 所需下发的订阅模板id
            'touser' => $touser,     // 接收者（用户）的 openid
            'url' => '',       // 点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。
            'data' => [         // 模板内容，格式形如 { "key1": { "value": any }, "key2": { "value": any } }
                'first' => [
                    'value' => '您好,您的预约已被司机取消',
                ],
                'keyword1' => [
                    'value' => $keyword1,
                ],
                'keyword2' => [
                    'value' => $keyword2,
                ],
                'keyword3' => [
                    'value' => $keyword3,
                ],
                'remark' => [
                    'value' => '您预约的订单已被取消，请重新预约',
                ],
            ],
        ];

        $app->template_message->send($data);
    }
}